分享至
抽獎程式通常需要用亂數抽取不重覆的特定筆數資料,這時候可以考慮使用sql command來處理,語法如下: select column from table order by rand() limit n
也可以依情況再下所需where絛件!使用上述的語法就不需要把全部的資料傳回程式處理,可以簡化程式碼!
這個指令只在MySQL測過,其他DB可能不支援,有需要的話自行查閱相關DB的manual!
謝謝分享-很好的sql command運用
謝謝分享。 在MySQL的網站提到Rand()並不是一個夠"亂"的亂數產生器,另外也有使用者提到當資料量很大的時候,這個指令的效能會受到很大的影響,所以必須改用其他的方式。
恩恩,所以使用還是要看情況來綜合判斷。在where條件中使用函數會碰到的問題,就是會影響mysql的查詢模式,使得查詢速度比較慢(常常會變成用table scan)。如果資料量不大的話就還好。
謝謝囉^^
謝謝分享。
謝謝分享
IT邦幫忙